package com.wlz.files;

import java.io.*;
import java.util.zip.*;

public class ZipFolder {
    public static void main(String[] args) throws IOException {

        String sourceFolder = "/Users/wlz/Desktop/home/tmp/bjev/cjpackage/20230407/fc95c069-419a-4c59-9801-edbee620b82d/xml";
        String zipFile = "/Users/wlz/Desktop/home/tmp/bjev/cjpackage/20230407/xml-fc95c069-419a-4c59-9801-edbee620b82d.zip";

        FileOutputStream fos = new FileOutputStream(zipFile);
        ZipOutputStream zos = new ZipOutputStream(fos);

        // 获取源文件夹中的所有文件列表
        File sourceFile = new File(sourceFolder);
        File[] files = sourceFile.listFiles();

        // 遍历所有文件并添加到 zip 文件中
        for (File file : files) {
            if (file.isFile()) {
                FileInputStream fis = new FileInputStream(file);

                // 创建 zip 文件中的一个 entry，并设置 entry 的名称
                ZipEntry zipEntry = new ZipEntry(file.getName());

                // 将 entry 添加到 zip 输出流中
                zos.putNextEntry(zipEntry);

                // 将文件内容写入 zip 输出流中
                byte[] buffer = new byte[1024];
                int length;
                while ((length = fis.read(buffer)) > 0) {
                    zos.write(buffer, 0, length);
                }

                // 关闭当前 entry
                zos.closeEntry();
                fis.close();
            }
        }

        // 关闭 zip 输出流
        zos.close();
        fos.close();
    }
}